package com.itheima;

import javax.xml.crypto.Data;
import java.util.HashMap;
import java.util.Map;

/**
 * @ProjectName: ybxy6
 * @Titile: MapPractice
 * @Author: 鲁伍加
 * @Description: TODO
 * 案例-投票统计
 */
public class MapPractice {
    public static void main(String[] args) {
        Map<String,String> data = new HashMap<>();
        data.put("小王","A");
        data.put("小李","B");
        data.put("小张","C");
        data.put("小赵","D");
        data.put("小钱","A");
        data.put("小孙","B");
        data.put("小王2","C");
        data.put("小李2","A");
        data.put("小李3","B");
        data.put("小李4","D");
        data.put("小孙2","C");
        data.put("小孙3","B");
        data.put("小王3","D");
        data.put("小王4","A");
        data.put("小钱2","D");
        data.put("小钱3","C");
        data.put("小钱4","A");
        data.put("小钱5","B");
        data.put("小钱6","A");
        data.put("小钱7","B");
        data.put("小钱8","A");
        data.put("小钱9","B");


        //调用方法去统计
        count(data);
    }
    public static void count(Map<String,String>data){
        //1.创建一个新的map集合，用来存储统计投票结果
        //2.遍历data集合，得到每一个键值对（key--value)
        //---3.将value值拿出来，将value当做key存储到新的map集合中，
        //---4.如果A已经存在了，则A对应的值加1
        //---5.如果A不存在，则A对应的值设置为1，存储到新的map集合中
        //6.遍历新的map集合，得到每一个键值对（key--value)打印结果
        Map<String,Integer> resultMap = new HashMap<>();

        data.forEach((k,v)->{
            //---3.将value值拿出来，将value当做key存储到新的map集合中，
            //---4.如果A已经存在了，则A对应的值加1
            //---5.如果A不存在，则A对应的值设置为1，存储到新的map集合中
            //判断v是否已经在新的resultmap集合中
            boolean containsKey = resultMap.containsKey(v);
            if (containsKey){//存在
                //将老的值获取出来，在老的值基础上+1
                Integer oldCount = resultMap.get(v);
                resultMap.put(v,oldCount+1);

            }else{//v不在
                resultMap.put(v,1);
        }

        });
        //6.遍历新的map集合，得到每一个键值对（key--value)打印结果
        resultMap.forEach((k,v)->{
            System.out.println(k+"-->"+v);
        });

    }
}
